package inteligencia_mapa;

import main.Programa;
import inteligencia_personaje.MovimientosPersonaje;

public class MoverEnAire extends Thread{
	
	protected Gravedad gravedad;
	protected MovimientoMapa movMapa;
	protected int VELOCIDAD = 4;
	protected Programa elPrograma;
	protected boolean moverD;
	protected boolean moverI;
	
	
	public MoverEnAire(Programa p, MovimientoMapa m){
		moverD = false;
		moverI = false;
		elPrograma = p;
		movMapa = m;
		gravedad = new Gravedad(p,movMapa, elPrograma.obtenerMario());
	}
	
	public void moverDerecha(){
		moverI = false;
		moverD = true;
	}
	
	public void moverIzquierda(){
		moverD = false;
		moverI = true;
	}
	
	public void detener(){
		moverD = false;
		moverI = false;
	}
	
	public void run(){
		try {
			this.join(1);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		while(true){
			try{
				MovimientosPersonaje movMario = elPrograma.obtenerMario().obtenerMovPJ();
				if(moverD && movMario.puedo_ir_derecha()){
					elPrograma.obtenerMario().irDerecha(VELOCIDAD);
					elPrograma.establecerActualX(elPrograma.obtenerActualX()+VELOCIDAD);
					movMapa.refreshMapa(elPrograma.obtenerActualX());
					//gravedad.tirar_para_abajo(0);
					Thread.sleep(100);
				}
				
				if(moverI && movMario.puedo_ir_izquierda()){
					elPrograma.obtenerMario().irIzquierda(VELOCIDAD);
					elPrograma.establecerActualX(elPrograma.obtenerActualX()-VELOCIDAD);
					movMapa.refreshMapa(elPrograma.obtenerActualX());
					//gravedad.tirar_para_abajo(0);
					Thread.sleep(100);
					
				}
				
			}catch(Exception e){
			}
		}
	}
}
